package com.ruoyi.system.message.mapper;

import com.ruoyi.system.message.domain.MiniMessage;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 消息提醒Mapper接口
 *
 * @author lhj
 * @date 2024-02-18
 */
@Repository
public interface MiniMessageMapper {
    /**
     * 查询消息提醒
     *
     * @param id 消息提醒主键
     * @return 消息提醒
     */
    public MiniMessage selectMiniMessageById(String id);

    /**
     * 查询消息提醒列表
     *
     * @param miniMessage 消息提醒
     * @return 消息提醒集合
     */
    public List<MiniMessage> selectMiniMessageList(MiniMessage miniMessage);

    /**
     * 新增消息提醒
     *
     * @param miniMessage 消息提醒
     * @return 结果
     */
    public int insertMiniMessage(MiniMessage miniMessage);

    /**
     * 修改消息提醒
     *
     * @param miniMessage 消息提醒
     * @return 结果
     */
    public int updateMiniMessage(MiniMessage miniMessage);

    /**
     * 删除消息提醒
     *
     * @param id 消息提醒主键
     * @return 结果
     */
    public int deleteMiniMessageById(String id);

    /**
     * 批量删除消息提醒
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMiniMessageByIds(String[] ids);

    /**
     * 一键已读
     *
     * @param userId
     * @return
     */
    int oneClickRead(Long userId);

    /**
     * 修改已读状态
     *
     * @param id
     */
    void updatereadOrNot(String id);

    Long selectCount(Long userId);

    List<MiniMessage> selectJPushData(@Param("reminderTime") LocalDateTime reminderTime, @Param("status") Integer status);

    /**
     * 修改发送状态
     *
     * @param msgIds
     */
    void updatestatus(@Param("ids") List<String> msgIds);

}
